package Lambda;

import java.io.File;
import java.io.FileFilter;

/**
 * JDk8之后推出了一个新的特性：lambda表达式
 *
 * lambda表达式可以用更精简的语法创建匿名内部类。
 * 语法:
 * (参数列表)->{
 *     方法体
 * }
 *
 * 需要注意:使用lambda表达式创建的匿名内部类在实现接口时要求该接口只能有一个抽象方法，否则
 * 不能用lambda表达式。
 *
 *
 *
 */





public class LambdaDemo {
    public static void main(String[] args) {
        FileFilter filter = new FileFilter() {
            public boolean accept(File file) {
                return file.getName().startsWith(".");
            }
        };

        FileFilter filter1 = (File file)->{
            return file.getName().startsWith(".");
        };


        //lambda表达式参数类型可以忽略不写
        FileFilter filter2 = file->{
            return file.getName().startsWith(".");
        };


        //如果参数只要一个，则()可以忽略不写
        FileFilter filter3 = f->{
            return f.getName().startsWith(".");
        };


/*



 */





        FileFilter filter4 = f->f.getName().startsWith(".");

        File dir = new File(".");
        File[] subs = dir.listFiles(f->f.getName().startsWith("."));
        for(int i=0;i<subs.length;i++){
            System.out.println(subs[i].getName());
        }












    }
}
